package lib.rpc;

import java.io.IOException;


/**
 * Interface exposing Remote Procedural Call functionality for client
 *
 * @author abhip
 *
 */
public interface IClientRPCFunctionality {
    /**
     * Serializes the rpcInvokePacket and sends it to the server, and waits for
     * a response
     *
     * @param rpcInvokePacket
     * @return deserialized rpcResultPacked obtained from the server
     * @throws IOException
     * @throws ClassNotFoundException
     */
    RPCResultPacket Invoke(RPCInvokePacket rpcInvokePacket) throws IOException, ClassNotFoundException;
}
